package main

//方法表达式

//type T333 struct {
//	a int
//}
//
//func (t T333) Get() int {
//	return t.a
//}
//
//func (t *T333) Set(i int) {
//	t.a = i
//}
//
//func (t *T333) Print() {
//	fmt.Printf("%T\t %p\t %v\t %d\n", t, t, t, t.a)
//}
//
//func main() {
//	//如下方法表达式是等价的
//	t := T333{
//		a: 1,
//	}
//
//	//普通方法调用
//	fmt.Println(T333.Get(t))
//
//	//方法表达式调用
//	fmt.Println((T333).Get(t))
//
//	//普通方法调用
//	f1 := T333.Get
//	fmt.Println(f1(t))
//
//	//方法表达式调用
//	f2 := T333.Get
//	fmt.Println(f2(t))
//
//	//如下方法表达式调用都是等价的
//	(*T333).Set(&t, 2)
//	f3 := (*T333).Set
//	f3(&t, 2)
//}
